package bean;

import java.io.Serializable;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.primefaces.component.datatable.DataTable;

import br.com.biblioteca.interfaces.GerenciadorDeAutor;
import br.com.biblioteca.model.Autor;

@ManagedBean
@SessionScoped
public class AutorBEAN implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	@EJB
	private GerenciadorDeAutor gerenciadorDeAutor;
	
	private Autor autor;
	private DataTable datatable;
	private Boolean btnSalvar;
	private Boolean btnCadastrar;
	private String alerta = "";

	public AutorBEAN(){
		autor = new Autor();
		btnSalvar = false;
		btnCadastrar = true;
		alerta = "";
	}
	
	public String cadastrarAutor() {
		gerenciadorDeAutor.adicionarAutor(autor);
		autor = new Autor();
		FacesContext context = FacesContext.getCurrentInstance(); 
		context.addMessage(null, new FacesMessage("Successful", "Cadastro realizado com sucesso!! "));
		return "";
	}
	
	public String cancelar(){
		btnSalvar = false;
		btnCadastrar = true;
		autor = new Autor();
		alerta = "";
		return "telaAdm.xhtml";
	}
	
	public String salvarAutor(){
		gerenciadorDeAutor.alterarAutor(autor);
		btnSalvar = false;
		btnCadastrar = true;
		autor = new Autor();
		alerta = "alert('Autor Salvo!!!')";
		//conversa.end();
		return "";
	}
	
	public String editarAutor() {
		//conversa.begin();
		autor = (Autor) datatable.getRowData();
		btnSalvar = true;
		btnCadastrar = false;
		alerta = "";
		return "telaCadAutor.xhtml";
	}
	
	public String deletarAutor(){
		autor = (Autor) datatable.getRowData();
		gerenciadorDeAutor.deletarAutor(autor);
		autor = new Autor();
		alerta = "";
		return "";
	}
	
	public List<Autor> getAutores() {
		return gerenciadorDeAutor.getAutores();
	}
	public Autor getAutor() {
		return autor;
	}

	public void setAutor(Autor autor) {
		this.autor = autor;
	}

	public DataTable getDatatable() {
		return datatable;
	}

	public void setDatatable(DataTable datatable) {
		this.datatable = datatable;
	}

	public Boolean getBtnSalvar() {
		return btnSalvar;
	}

	public void setBtnSalvar(Boolean btnSalvar) {
		this.btnSalvar = btnSalvar;
	}

	public Boolean getBtnCadastrar() {
		return btnCadastrar;
	}

	public void setBtnCadastrar(Boolean btnCadastrar) {
		this.btnCadastrar = btnCadastrar;
	}

	public String getAlerta() {
		return alerta;
	}

	public void setAlerta(String alerta) {
		this.alerta = alerta;
	}
	
	
}
